package com.jn.erp.web.api.interaction.controller;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jn.erp.common.core.page.TableDataInfo;
import com.jn.erp.common.core.result.AjaxResult;
import com.jn.erp.security.controller.BaseWebAuthController;
import com.jn.erp.web.api.interaction.entity.TIntegral;
import com.jn.erp.web.api.interaction.entity.TIntegralConfig;
import com.jn.erp.web.api.interaction.entity.dto.TIntegralDto;
import com.jn.erp.web.api.interaction.entity.vo.TIntegralVo;
import com.jn.erp.web.api.interaction.service.TIntegralConfigService;
import com.jn.erp.web.api.interaction.service.TIntegralService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import org.springframework.stereotype.Controller;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.Objects;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author wyp
 * @since 2024-10-10
 */
@RestController
@RequestMapping("/tIntegral")
public class TIntegralController extends BaseWebAuthController {
    @Autowired
    private TIntegralService tIntegralService;
    @Autowired

    private TIntegralConfigService tIntegralConfigService;
    /**
     保存
     */
    @PostMapping("save")
    public AjaxResult save(@RequestBody TIntegralVo tIntegralVo){
        TIntegralConfig tIntegralConfig = tIntegralConfigService.getOne(new QueryWrapper<TIntegralConfig>().eq("org_id", loginDeptAuth()).eq("is_delete", "0"));
        //机构id
        tIntegralVo.setOrgId(Long.parseLong(loginDeptAuth()) );

        //当前登录人id
        tIntegralVo.setName(tIntegralConfig.getName());
        tIntegralVo.setTId(tIntegralConfig.getId());
        tIntegralVo.setCreateUser(String.valueOf(getUserId()) );
        tIntegralVo.setCreateDate(LocalDateTime.now() );
        tIntegralVo.setIsDelete("0");
        tIntegralVo.setType(4);
        tIntegralService.save(tIntegralVo);

        return AjaxResult.success("S00");
    }

    /**
     学员内积分列表
     */
    @GetMapping("listSecond")
    public TableDataInfo listSecond( TIntegralVo tIntegralVo){
        startPage();
        //机构id
        tIntegralVo.setOrgId(Long.parseLong(loginDeptAuth()) );

        //当前登录人id
        tIntegralVo.setCreateUser(String.valueOf(getUserId()) );
        tIntegralVo.setCreateDate(LocalDateTime.now() );
        List<TIntegralDto> list =  tIntegralService.tIntegralListSecond(tIntegralVo);

        return getDataTable(list);
    }

    /**
     积分列表
     */
    @GetMapping("list")
    public TableDataInfo list( TIntegralVo tIntegralVo){
        startPage();
        //机构id
        tIntegralVo.setOrgId(Long.parseLong(loginDeptAuth()) );

        //当前登录人id
        tIntegralVo.setCreateUser(String.valueOf(getUserId()) );
        tIntegralVo.setCreateDate(LocalDateTime.now() );
        List<TIntegralDto> list =  tIntegralService.tIntegralList(tIntegralVo);

        return getDataTable(list);
    }
    /**
     积分统计
     */
    @PostMapping("count")
    public AjaxResult  count(@RequestBody TIntegralVo tIntegralVo){

        //机构id
        tIntegralVo.setOrgId(Long.parseLong(loginDeptAuth()) );

        //当前登录人id
        tIntegralVo.setCreateUser(String.valueOf(getUserId()) );
        tIntegralVo.setCreateDate(LocalDateTime.now() );
        Map map =  tIntegralService.tIntegralCount(tIntegralVo);

        return AjaxResult.success(map);
    }

}

